package com.lsyw.intergrate.entity;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableField;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 运输工单信息
 * </p>
 *
 * @author 刘磊
 * @since 2023-11-29
 */
@Data
@Accessors(chain = true)

public class TransportWorkOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 运输单名称
     */
    @ApiModelProperty(value = "运输单名称")
    private String name;

    /**
     * 运输任务id
     */
    @ApiModelProperty(value = "运输任务id")
    private String transportTaskId;

    /**
     * 司机id
     */
    @ApiModelProperty(value = "司机id")
    private String driverId;

    /**
     * 车辆id
     */
    @ApiModelProperty(value = "车辆id")
    private String vehicleId;

    /**
     * GPS--车辆中id
     */
    @ApiModelProperty(value = "GPS--车辆中id")
    private String gpsVehicleId;

    /**
     * GPS--土壤中id
     */
    @ApiModelProperty(value = "GPS--土壤中id")
    private String gpsSoilId;

    /**
     * cctv设备id,多个以,隔开
     */
    @ApiModelProperty(value = "cctv设备id,多个以,隔开")
    private String cctvIds;

    /**
     * 土量-过磅员
     */
    @ApiModelProperty(value = "土量-过磅员")
    private Double weight;
    /**
     * 体积
     */
    @ApiModelProperty(value = "体积")
    private Double volume;
    /**
     * 过磅员id
     */
    @ApiModelProperty(value = "过磅员id")
    private String weigherId;

    /**
     * 土量-接收员
     */
    @ApiModelProperty(value = "土量-接收员")
    private Double receiveWeight;

    /**
     * 体积-接收员
     */
    @ApiModelProperty(value = "体积-接收员")
    private Double receiveVolume;

    /**
     * 接收单位
     */
    @ApiModelProperty(value = "接收单位")
    private String receiveUnit;

    /**
     * 接收人
     */
    @ApiModelProperty(value = "接收人")
    private String receivePerson;

    /**
     * 接收人电话
     */
    @ApiModelProperty(value = "接收人电话")
    private String receivePhone;

    /**
     * 接收人id
     */
    @ApiModelProperty(value = "接收人id")
    private String receiveId;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "接收人接收时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiveDate;
    /**
     * 运输状态（1：装车中，2：运输中，3：运输完成）
     */
    @ApiModelProperty(value = "运输状态（1：装车中，2：运输中，3：运输完成）")
    private Integer status;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String gmtCreateUser;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String gmtModifiedUser;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtModified;
    /**
     * 是否已删除 0否 1是
     */
    @ApiModelProperty(value = "是否已删除 0否 1是")
    private Integer delFlag;


    /**
     * 实际 利用/处置具体方式 1转电厂焚烧 2水泥窑协同处置 3结烧砖协同处置 4填埋 5陶粒窑协同处置 6其它
     */
    @ApiModelProperty(value = "实际 利用/处置具体方式 1转电厂焚烧 2水泥窑协同处置 3结烧砖协同处置 4填埋 5陶粒窑协同处置 6其它")
    private int sjWay;
    /**
     * 是否已入库 1否 2是
     */
    @ApiModelProperty(value = "是否已入库 1否 2是")
    private Integer isIn;

    /**
     * 车辆信息
     */
    @ApiModelProperty(value = "车辆信息")
    @TableField(exist = false)
    private Vehicle vehicle;
    /**
     * 司机信息
     */
    @ApiModelProperty(value = "司机信息")
    @TableField(exist = false)
    private MassifUser driver;
    /**
     * 司机信息
     */
    @ApiModelProperty(value = "司机姓名")
    @TableField(exist = false)
    private String driverName;

    /**
     * 公司
     */
    @ApiModelProperty(value = "公司")
    @TableField(exist = false)
    private Company company;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    @TableField(exist = false)
    private String companyName;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "接收公司名称")
    @TableField(exist = false)
    private String jsCompanyName;
    /**
     * 计划名称
     */
    @ApiModelProperty(value = "计划名称")
    @TableField(exist = false)
    private String transportPlanName;
    /**
     * 计划名称
     */
    @ApiModelProperty(value = "任务名称")
    @TableField(exist = false)
    private String transportTaskName;
    /**
     * 地块名称
     */
    @ApiModelProperty(value = "地块名称")
    @TableField(exist = false)
    private String massifName;
    /**
     * 路线名称
     */
    @ApiModelProperty(value = "路线名称")
    @TableField(exist = false)
    private String routeName;
    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date gmtEnd;
    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date gmtStart;

    /**
     * 路线
     */
    @ApiModelProperty(value = "规划路线")
    @TableField(exist = false)
    private Route route;

    /**
     * 路线
     */
    @ApiModelProperty(value = "实际路线")
    @TableField(exist = false)
    private List<List<Object>> soilRealRoute;
    /**
     * 路线
     */
    @ApiModelProperty(value = "实际路线")
    @TableField(exist = false)
    private List<List<Object>> vehicleRealRoute;
    /**
     * cctv设备列表
     */
    @ApiModelProperty(value = "cctv设备列表")
    @TableField(exist = false)
    private List<Device> cctvList;
    /**
     * 任务
     */
    @ApiModelProperty(value = "任务")
    @TableField(exist = false)
    private TransportTask task;

    /**
     * 过磅员id
     */
    @ApiModelProperty(value = "过磅员Name")
    @TableField(exist = false)
    private String weigherName;

}
